Cloudflare Workers Demo — Cheat Sheet

~10–15 min · Walk every tab → end at the live site · "Italic quotes" = phrases, your words are better · ▶ = action

Before the call

0. Open (~1 min)

"I built a small consulting site called Dustin's Hub. It captures leads, sends me an email when someone wants an audit, costs effectively nothing per month. There's no server behind it — the whole thing runs on Cloudflare Workers. Let me walk you through how it's built."

Tab 1. Overview

▶ You're already on the Overview tab — the dustins-hub Worker

"Home page for one Worker project. Everything here is a summary of how it's set up."

a) Deployment URL bar (top)

"dustins-hub.dustinburke23nc.workers.dev — URL Cloudflare assigned automatically. Anyone in the world can hit it right now. It says 'Automatic deployment on upload' — meaning every time I save my code, it goes live globally within seconds."

b) Architecture diagram (middle)

"Whole project at a glance. Left: inputs — Domains, Workers, Queues. Middle: my Worker, dustins-hub. Right: bindings — connections to other Cloudflare resources like databases or storage."

"Notice Observability — Workers Logs Enabled. Every request gets logged automatically. I'll show you that in a minute."

c) Metrics summary (Last 24 hours)

"Requests, errors, CPU time. Quiet day — six requests, zero errors. CPU time per request under a millisecond. That's the kind of efficiency you get running on the edge."

d) Request Distribution map (bottom)

"Where requests are coming from globally. Right now just me. If a million people hit this from around the world, dots light up everywhere — whoever visits gets served from the data center closest to them. Not one server in Virginia."

e) Domains & Routes panel (right side)

"Where you'd connect a custom domain. Right now I'm using the workers.dev URL Cloudflare gave me. For production, I'd point my own domain here."

Edit Code (~3 min)

▶ Click Edit Code top right → open index.js

"This is the brain. Whole backend is ~60 lines, one file. Don't worry if you don't read code — I'll narrate three patterns."

Pattern 1 — Decide: form submission or page view?

if (request.method === "POST") { ... }
"First thing the Worker checks: is this a POST? If yes, someone submitted the form. If not, just serve the webpage."

Pattern 2 — Read the email out of the form

const formData = await request.formData();
const email = formData.get("email");
"Parse form data the browser sent, grab the email field. Standard — same pattern you'd use on any backend."

Pattern 3 — Call the email service

await fetch("https://api.resend.com/emails", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${env.RESEND_API_KEY}`,
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    from: "onboarding@resend.dev",
    to: "dustinburke23nc@gmail.com",
    subject: "New Lead from Worker",
    text: `New signup: ${email}`
  })
});
"Where the work happens. Worker calls Resend — an email service — asks it to send me a notification with the visitor's address."

"Look at this line — env.RESEND_API_KEY. That's the API key Cloudflare hands the Worker at runtime. The actual key value isn't in this code anywhere. It's pulled from the vault. I'll show you the vault next."

→ Click back arrow / breadcrumb to return to the Worker overview.

Tab 2. Metrics

▶ Click the Metrics tab

"Zoom-in version of the metrics box on Overview. Full graphs — 24 hours, 7 days, 30 days."
"How you watch a Worker scale. Launch something and it goes viral, this graph spikes — but nothing on your end breaks. Cloudflare scales it automatically."

Tab 3. Deployments

▶ Click the Deployments tab

"Every time I save my code, that's a new deployment. Full history — who, when, what changed."
"If I break something, one-click rollback to a previous version. Safer than most CI/CD setups, with zero configuration."

Tab 4. Bindings

▶ Click the Bindings tab

"Bindings are how a Worker connects to other Cloudflare resources — databases, file storage, caches, queues, even other Workers. Right now I have zero, because the Hub only needs to send emails."

Examples I could add:

"All a few clicks to add. No separate account, no separate billing, no API keys to manage. The Worker code just sees them as objects it can talk to. That's the part of Cloudflare most people underestimate."

Tab 5. Observability

▶ Click the Observability tab

"Where logs and tracing live. On Overview you saw Workers Logs marked Enabled — this is the page where you actually view them."

Do this:

  1. Start the log stream
  2. Switch to the live site tab, submit the form
  3. Come back — the request appears here within a second
"No log forwarder, no DataDog agent, no third-party tool. This is included. If something's broken, the answer is two clicks away."

Tab 6. Settings

▶ Click the Settings tab

"All the configuration. Three sections worth showing:"

Variables and Secrets (the vault)

▶ Scroll to / click Variables and Secrets

"The vault. When I added the API key as a Secret, it got encrypted. Now I can't view it back — not even me. I can overwrite or delete, but I can't read it. The Worker uses it at runtime, but it never shows up in the page, the browser, or any log."

Triggers

▶ Scroll to / click Triggers (or Domains & Routes)

"How the Worker gets called. Default: the workers.dev URL anyone can hit. You can also add a custom domain, route specific paths to it, or set up a cron schedule to run automatically every hour."

Other Settings

"Rest of Settings is advanced — CPU limits, compatibility dates, placement strategy. None of which I've had to touch for this project."

The Payoff — Watch it Work End-to-End (~3 min)

Live submission demo

▶ Switch to the second browser tab — the live Dustin's Hub site (https://dustins-hub.dustinburke23nc.workers.dev/)

"You've seen the whole stack. Now let me show you what it actually does for a visitor."

Do this:

  1. Scroll to the lead-capture form
  2. Type a real email address
  3. Click Get a Free Audit
  4. Wait for the success message

→ Switch back to the dashboard Observability tab

"There's the request, live. POST to /submit, status 200, response time in milliseconds."

→ Switch to the email inbox tab

"And here's the lead notification, in my actual inbox. Form submitted, Worker caught it, pulled the API key from the vault, called the email service. End to end — about one second."

⏸ Pause. Let it land.

Close (~1 min)

"That's the whole thing. One dashboard, one Worker, one file, one secret. No server, no hosting bill, no patching. If you have a use case in mind — a form, a webhook, an internal tool — I can stand up a working prototype on Cloudflare in a week."
If cautious:
"No pressure today. Open the site I just showed you on your phone, share the URL. The proof is in the experience."
THE WORKERS POINT

No server. No hosting bill. No patching. No scaling worry.
Code lives in 300+ locations globally. Deploys in seconds. Rolls back in one click.
Secrets encrypted, never visible — not even to you.

"This isn't 'serverless' as a buzzword. It's actually one file, one dashboard, one bill."

If something breaks during the demo


Quick Answers — back-pocket

Is this secure?

Secrets are encrypted and unreadable. No server to hack. Cloudflare protects ~20% of the internet from attacks — included.

What if Cloudflare goes down?

Code runs in 300+ locations. Uptime beats most companies' own data centers.

Is this only for small projects?

No. Shopify, DoorDash, Discord, Fortune 500s use the same platform.

What if I need a database?

D1 (SQLite), R2 (file storage, no egress fees), KV (cache). Added as bindings in a few clicks — you saw the Bindings tab.

Pricing?

Free tier: 100,000 requests/day. Above that, ~$5/month for 10 million. Most projects pay nothing.

How long to deploy?

From scratch — hours to a day. If already on Cloudflare DNS — minutes.

Can I write the code with AI?

Yes. Plain JavaScript. Cursor, ChatGPT, Claude all write good Worker code.